﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI;
namespace KioskosJugandoLimpio.Classes
{
    public class Encuesta
    {
        public string Titulo;
        public int idEncuestas;
        public string Introduccion;
        public string NotaFinal;
        private List<Seccion> Secciones;
        public Modes mode;
        public int agrupador;


        public Encuesta(int idEncuestas)
        {
            // TODO: Complete member initialization
            this.idEncuestas = idEncuestas;
            DataTable t = SQL.fnDataTable(string.Format("EXEC obtenerEncuesta {0}", idEncuestas));
            this.Titulo = t.Rows[0]["Titulo"].ToString();
            this.Introduccion = t.Rows[0]["Introduccion"].ToString();
            this.NotaFinal= t.Rows[0]["NotaFinal"].ToString();
            Secciones = new List<Seccion>();
            foreach (DataRow row in t.Rows) {
                int idSeccion;
                if( int.TryParse(row["idSecciones"].ToString() , out idSeccion )){
                    Seccion seccion = new Seccion(int.Parse(row["idSecciones"].ToString() ) , this) ;
                    Secciones.Add(seccion);
                }
            }
            mode = Modes.View;
        }

        public Encuesta()
        {
            // TODO: Complete member initialization
            mode = Modes.View;
        }
        public ListItem listItem
        {
            get {
                ListItem item = new ListItem();
                item.Text = this.Titulo;
                item.Value = string.Format("Encuesta.aspx?idEncuestas={0}", this.idEncuestas);
                return item;
            }
            }
        Label SpanTitulo
        {
            get
            {
                Label lblTitulo = new Label();
                lblTitulo.Text = Titulo;
                lblTitulo.CssClass = "titulo";
                return lblTitulo;
            }
        }
        Label SpanIntroduccion
        {
            get
            {
                Label lblIntroduccion  = new Label();
                lblIntroduccion.Text = Introduccion;
                lblIntroduccion.CssClass = "introduccion";
                return lblIntroduccion;
            }
        }

        public Control form
        {
            get
            {
                if (mode == Modes.Edit) {
                    return this.formEdit;
                }
                Control ctl = new Control();
                ctl.Controls.Add(SpanTitulo);
                ctl.Controls.Add(SpanIntroduccion);
                foreach (Seccion seccion in Secciones)
                {
                    ctl.Controls.Add(seccion.div);
                }
                ctl.Controls.Add(SpanNotaFinal);
                Button b = new Button();
                b.UseSubmitBehavior = true;
                b.Text = "Guardar";
                b.OnClientClick = "return fnSerialize();";
                ctl.Controls.Add(b);
                return ctl;
            }
        }
        public Control formEdit
        {
            get
            {

                Control ctl = new Control();
                ctl.Controls.Add(SpanTitulo);
                ctl.Controls.Add(SpanIntroduccion);
                foreach (Seccion seccion in Secciones)
                {
                    ctl.Controls.Add(seccion.div);
                }
                ctl.Controls.Add(SpanNotaFinal);
                Button b = new Button();
                b.UseSubmitBehavior = true;
                b.Text = "Guardar";
                b.OnClientClick = "return fnSerialize();";
                ctl.Controls.Add(b);
                return ctl;
            }
        }

        public Control SpanNotaFinal
        {
            get
            {
                Label lblNotaFinal = new Label();
                lblNotaFinal.Text = NotaFinal;
                lblNotaFinal.CssClass = "introduccion";
                return lblNotaFinal;
            }
        }

        public DataSet respuestas { get {
            DataSet ds = SQL.fnDataSet(string.Format("EXEC reporteDeEncuesta {0},{1}",agrupador , idEncuestas ));
            return ds;
            /*List<Tabla> lista = new List<Tabla>();
            foreach (DataTable dt in ds.Tables)
            {
                if (dt.Rows.Count > 0)
                {
                    Tabla t = new Tabla();
                    t.nombre = dt.Rows[0]["DTName"].ToString();
                    foreach (DataRow dr in dt.Rows)
                    {
                        List<object> r = new  List<object>();
                        foreach (DataColumn dc in dt.Columns) {
                            r.Add(new object(){dc.ColumnName:dr[dc].ToString()});
                        }
                        t.rows.Add(r);
                    }
                    lista.Add(t);   
                }
            }
            return lista;*/
        } }
    }
}
